VCLINK32

NOTE: You should never need to rebuild VCLINK32.LIB as we will make new releases available as needed. The CPP files are included in this zip file for those who wish to dynamically link to the DLL through LoadLibrary and GetProcAddress.

Important for v3.0.1:
This version of VCLINK32.DLL was updated after the release of Visual CADD v3.0.0 and should replace the one shipped with v3.0.0. If not replaced, any code you write using the new v3 function calls will not work.

Overview
Visual CADD is written in Borland C. MS Visual C++ 2.0 or higher will not interpret functions exported from Borland DLL. Since Visual CADD is written with Borland C++ the API is not accessible directly by developers utilizing Visual C++. In order to remedy this problem an intermediate file is required to map the API to a format readable by the MS compiler. VCLINK32.DLL does this task. A version was shipped with the release of Visual CADD 3.0 but did not include the new API calls written for v3.


DETAILS
In order to access the Visual CADD API from MS Visual C++ by implicitly linking, an intermediate file written and compiled in MS Visual C++ is required. This file, VCLINK32.DLL, simply calls a LoadLibrary function on each Visual CADD API routine. This allows an application to access the API without specifically calling a LoadLibrary function each time a routine is called. You link to the VCLINK32.DLL file by using the enclosed VCLINK32.LIB. Please note that although a VCLINK32.DLL shipped with v3.0 of Visual CADD, the new API and new calls are not supported by that DLL. You need to ship this new 3.0.1 version of VCLink32.DLL with your application to make certain that your end users can utilize any new routines you include in your code. 

As new versions and updates of Visual CADD are released, the API will expand in functionality. In order to access the new routines an application will need to update the VCLINK32.LIB file to correspond with the new release. 

NOTE: When building an application in MS Visual C++ the project setting (C++/Code Generation/Calling Convension) must be changed to _stdcall. The default calling method is _cdecl.

Files:
VCLINK32.DLL
VCLINK32.LIB
VCLINKMS.LIB : Used in MSVC++ samples
VCLINKBC.LIB : Used in Borland C++ samples
VCDLG32.CPP		
VCMAIN32.CPP
VCTOOL32.CPP
VCTRAN32.CPP
VCMAIN32.H
VCTRAN32.H
VCDLG32.H
VCTOOL32.H

LISTING OF NEW CALLS

//additions to VCMain32.DLL (vcmain32.h)
VCGetDisplayPointString
VCGetDisplayAngleString
VCGetDisplayLengthString
VCGetSelectionCount
VCGetCommandString
VCSetCurrWorldByHWND
VCFirstWorld
VCNextWorld
VCOnActivateView
VCScreenToWorld2D
VCScrollStart
VCScrollEnd
VCOnScroll
VCOnTimerRunningSnap
VCLayerSelect
VCSetCursorEx
VCGetTextUseTextLayer
VCSetTextUseTextLayer
VCGetProgramPath
VCGetManualEntryMode
VCApplyLayerGroupByIndex
VCApplyLayerGroupByName
VCGetLayerGroupName
VCGetLayerGroupIndex
VCGetLayerGroupCount
VCAddLayerGroup
VCDeleteLayerGroup
VCGetLayerGroupLayer
VCSetLayerGroupLayer
VCGetLayerPrintable
VCSetLayerPrintable

//additions to VCDlg32.DLL (vcdlg32.h)
VCGetDialogFromId

//additions to VCTool32.DLL (VCTool32.h)
VCCopyToLayer
VCDestroyContextMenu
VCGetCurrentToolContextMenu
VCMergePolygonsTool
VCMoveToLayer
VCSplitPolygonTool

//additions to VCLink32.DLL (VCLink32.h)
VCCreateSymbolFromSelectionBP
VCDigPointBP
VCGetDatumBasePtBP
VCMouseMoveWorldPointBP
VCPaintBP
VCScreenToWorld2DBP
VCSetDatumBasePtBP
VCSetScaleXYBP
VCSetSymScaleBP


-----------------------

-VCLINK32.DLL: If you are using Visual CADD v3.0.1, this file should replace the one that shipped with 3.0.0. 

-VCLINK32.LIB: This lib file is built with the MS Visual C++ compiler and intended for MSVC++ apps ONLY.

-VCLINKMS.LIB: This lib file is a renamed copy of VCLINK32.LIB. 

-VCLINKBC.LIB: This lib file was created by "ImpLib-ing" VCLINK32.DLL to create a Borland formatted equivalent of VCLINK32.LIB. For Borland C++ apps ONLY. To recreate this file, use Borlands Implib.exe utility. 

>From the dos prompt type: implib vclinkbc.lib vclink32.dll

NOTE: BE CAREFUL! Reversing the implib parameters destroys the DLL, trust me.
		
-CPP Files: Including the CPP files directly in your project is another way for MSVC++ apps to gain access to Visual CADD DLL functions, and eliminates the need for the end user to have a current VCLink32.DLL in their systems folder. Use the "Dlldlg" project under "Mfcsmpls" as an example.

-H Files: C/C++ header files.
